A typical delay circuit receives an input signal and generates a replica of the input signal after a predetermined time has elapsed. Delay circuits are commonly used in applications which require synchronization between two electronic signals or which require temporary storage of a signal for a fixed period of time.
For example, delay circuits may be used to resynchronize signals traveling on the parallel wires of a bus, such as a Small Computer Standard Interface, or SCSI, bus. Such a bus comprises a plurality of parallel data wires and a single clock wire. Due to switching transients in the bus drivers and other circuitry, data signals on the plurality of data wires are stable during certain time intervals and unstable during other time intervals. It is important that devices connected to the bus read the data lines only during the time intervals during which the data signals are stable. Consequently, a signal on the clock wire is used to control the time period during which devices connected to the bus read data from the data lines.
The conventional SCSI bus arrangement works well, but limits the physical length of a SCSI bus. The data and clock signals propagate down the bus lines at slightly different speeds due to a variety of factors, and, as the bus gets longer, the differences in propagation speeds cause the data signals to arrive at a given point at different times, a phenomenon called "skew." If the skew becomes large enough, it may shift the arrival of a data signal relative to the clock signal at a peripheral device by an amount sufficient to cause the data signal to be read in its unstable region, thereby causing a data error.
One prior art solution to this problem is to use a "store and forward" buffer system. In this arrangement, signals on the bus are received and stored until signals are received for each bus line. When all signals have been received, the signals are simultaneously retransmitted on another SCSI bus, thereby overcoming the skew problem. However, SCSI busses have a number of timing requirements which restrict the use of the buffering approach. For example, in accordance with conventional operation, a host computer transmits a signal to a peripheral device which then sends a signal back to the host. The host waits a predetermined amount of time to receive the response from the device. If a response is not received from the device in the predetermined amount of time, the message is considered as not received. This operation prevents any open-ended communications between a host and a peripheral device.
A certain amount of time is required for a signal to propagate from a host computer to the peripheral device. Accordingly, if an extremely long cable is used, the propagation time may be longer than the predetermined time that the host is going to wait. The prior art method of storing signals in a buffer exacerbates this problem and, if buffering is used, the SCSI bus cables must be physically shortened to accommodate the time lost while the information is stored in a buffer. In addition to the skew problem, the prior art buffering method is not effective for high-speed lines since it slows down transmission between two SCSI busses.
Another prior art method for overcoming the skewing problem is to introduce a delay circuit into each bus line at a remote position along the SCSI bus after the clock and data signals have traveled through the bus. The delay circuits realign the signals to eliminate skew. One type of delay circuit utilized for this purpose is constructed from discrete circuit elements. This type of delay circuit does not provide consistent delay times because the delay times through the discrete elements can vary significantly with fluctuating operating conditions, such as temperature and voltage. Different variables in the manufacturing processes used to manufacture the discrete elements can also create variances from unit to unit. To overcome the latter problems, some circuits are manufactured by laser trimming some of the components after the circuit is assembled on a circuit-by-circuit basis in order to provide more accurate propagation delays. This is not economically desirable, however, because of the extra cost associated with the laser trimming process.
Other prior art circuits use tunable delay circuits. These latter circuits monitor the actual delay times and adjust themselves to provide more consistent, non-varying delay times. For example, U.S. Pat. No. 5,087,842 (Pulsipher et al.), discloses a self-adjusting delay circuit that includes a set of voltage controlled delay elements in each bus line. A ring oscillator is constructed with the same voltage controlled delay element used in the bus lines. The output of the ring oscillator which is indicative of the actual delay time through each of the delay elements is provided to an external microprocessor that adjusts all of the delay elements including that in the ring oscillator until the delay as measured by the ring oscillator meets a predetermined value. This type of delay circuit is not commercially optimal, however, because it requires adjustable delays which, in turn, require complex circuitry and an the external microprocessor, which also increases the size and manufacturing cost of the circuit.
Accordingly, It is among the general objects of the invention to provide a delay device that produces a substantially constant delay time.
It is also another object of the invention to provide such a delay device that is inexpensive to produce and implement.